home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / TCL1 / CSTATUSB / MAIN.C < prev   
C/C++ Source or Header  |  1992-07-19  |  2KB  |  111 lines

  1. /*****
  2.  *     CStatusBar.c
  3.  *    Status bar graph class by Joe Zobkiw
  4.  *
  5.  *    This code is free and in the public domain, if you use it, please mention
  6.  *    so in your About Box.
  7.  *
  8.  *    Suggestions or bugs: AFA Zobkiw @ America Online
  9.  *
  10.  *****/
  11.  
  12.  #include "CStatusBar.h"
  13.  #include "oops.h"
  14.  
  15.  main()
  16. {
  17.     DialogPtr    myDialog;
  18.     Boolean        dialogDone = FALSE;
  19.     int            percent, itemHit;
  20.     CStatusBar    *myStatusBar, *myOtherStatusBar, *myThirdStatusBar, *mySkinnyStatusBar;
  21.     RGBColor    rgb;
  22.     Boolean        filled = FALSE;
  23.     
  24.     InitGraf(&thePort);
  25.     InitFonts();
  26.     FlushEvents(everyEvent,0);
  27.     InitWindows();
  28.     InitMenus();
  29.     TEInit();
  30.     InitDialogs(0L);
  31.     InitCursor();
  32.     
  33.     myStatusBar = new( CStatusBar );
  34.     myOtherStatusBar = new( CStatusBar );
  35.     myThirdStatusBar = new( CStatusBar );
  36.     mySkinnyStatusBar = new( CStatusBar );
  37.     
  38.     myDialog = GetNewDialog(128,0L,-1L);
  39.     ShowWindow(myDialog);
  40.     
  41.     rgb.red = 0;
  42.     rgb.blue = 65535;
  43.     rgb.green = 0;
  44.     myStatusBar->IStatusBar( myDialog, 2, TRUE, FALSE, TRUE, rgb );
  45.     
  46.     myOtherStatusBar->IStatusBar( myDialog, 10, FALSE, FALSE, FALSE, rgb );
  47.     
  48.     rgb.red = 0;
  49.     rgb.blue = 0;
  50.     rgb.green = 65535;
  51.     mySkinnyStatusBar->IStatusBar( myDialog, 12, FALSE, TRUE, TRUE, rgb );
  52.     
  53.     rgb.red = 65535;
  54.     rgb.blue = 0;
  55.     rgb.green = 0;
  56.     myThirdStatusBar->IStatusBar( myDialog, 11, TRUE, TRUE, TRUE, rgb );
  57.     
  58.     while ( dialogDone == FALSE )
  59.     {
  60.         ModalDialog( 0L, &itemHit );
  61.         switch(itemHit)
  62.         {
  63.             case 1:
  64.                 DisposDialog( myDialog );
  65.                 dialogDone = TRUE;
  66.                 break;
  67.             case 3:
  68.                 if ( filled ) {
  69.                     Alert( 128, 0L );
  70.                     myStatusBar->Draw();
  71.                     myOtherStatusBar->Draw();
  72.                     myThirdStatusBar->Draw();
  73.                     mySkinnyStatusBar->Draw();
  74.                     filled = FALSE;
  75.                 } else {
  76.                     for (percent = 0; percent < 100; percent++ ) {
  77.                         myStatusBar->Update( percent );
  78.                         myOtherStatusBar->Update( percent );
  79.                         myThirdStatusBar->Update( percent );
  80.                         mySkinnyStatusBar->Update( percent );
  81.                         Delay( 1, 0L );             /* just for a slower effect */
  82.                     }
  83.                     SysBeep(0);
  84.                     filled = TRUE;
  85.                 }
  86.                 break;
  87.             case 4:
  88.                 myStatusBar->Draw();
  89.                 myOtherStatusBar->Draw();
  90.                 myThirdStatusBar->Draw();
  91.                 mySkinnyStatusBar->Draw();
  92.                 filled = FALSE;
  93.                 break;
  94.             case 9:
  95.                 Alert( 129, 0L );
  96.                 myStatusBar->Draw();
  97.                 myOtherStatusBar->Draw();
  98.                 myThirdStatusBar->Draw();
  99.                 mySkinnyStatusBar->Draw();
  100.                 filled = FALSE;
  101.                 break;
  102.             default:
  103.                 break;
  104.         }
  105.     }
  106.     
  107.     delete( myStatusBar );
  108.     delete( myOtherStatusBar );
  109.     delete( myThirdStatusBar );
  110.     delete( mySkinnyStatusBar );
  111. }